1. Field of the Invention
This invention relates generally to methods for configuring, supporting and controlling network elements. More particularly, the invention is directed to methods for parsing and validating command and configuration messages that control network elements.
2. Description of the Prior Art
In real-time, embedded software applications such as telephony and data access products, system software must respond to command requests or messages from a number of different external interfaces. These commands are typically used for provisioning and system configuration, fault management, security management, performance management and other system functionality. Both the set of messages and their parameters can vary with either the system software implementation, or the version of the software that is being used, or both. One well known language or set of instructions which has been developed and used in the past to manage network elements is the Transaction Language 1 ("TL1"), which is currently the dominant management protocol for controlling telecommunications networks in North America. Typically, a TL1 engine starts a data receiving, session, sometimes referred to as a Craftperson session, using a Craft Interface Terminal ("CIT"). The CIT is essentially a "dumb" terminal which passes a TL1 ASCII string that is a single, or set of, TL1 command(s) to external interfaces at the network elements. When the network or external element sends a response back through the command router, the TL1 engine will format the output message according to TL1 syntax and send the formatted string to the CIT terminal which initiated the original request. The TL1 instruction set has become so ubiquitous in current operations support systems which manage network elements that several companies have devoted all or part of their web sites to TL1 to better serve the public. One such company is Lumos Technologies, Inc. of Santa Monica, Calif. whose web site is currently accessible at www.lumos.com.
To accommodate differences in implementation and software versions, as well as the large variety of network elements that now exist, current TL1 engines use supplemental software created by an applications generator that interacts with a Craftperson to format TL1 CIT commands and to initiate execution of the formatted commands through the command router. This procedure has been dubbed "parsing and validation". As used herein the term "parsing" means splitting a message string up into its constituent parts, for example the message name, and one or more optional or required parameters defining message fields. Also as used herein, the term "validation" means checking a message and its contents to ensure that the message and its constituent parts are valid for a given message set.
A well-known applications generator for generating the software to perform parsing and validation, especially for TL1 strings, is the Dialog Code Generation System ("DCGS"). DCGS, as well as most other applications generators, translates templates (which are usually handwritten commands) to C language. The templates are essentially commands which are requested by the network elements and used in a data transfer session to manage the particular network. Thus, every time that a new network element is added or new commands are to be implemented, a new template must be generated and potentially new TL1 code must be written to make the TL1 engine aware of the new commands and their parameters. This existing approach to parsing and validation of messages is computationally dense, and requires a great deal of time for the man/machine interface to work out and debug the new commands. Parsing and validation of messages according to this method also runs the risk of allowing invalid validation functions to be created since it relies on human interactions, which are prone to error, with the system. Therefore, existing parsing and validation techniques for real-time embedded software applications do not provide efficient and accurate results for networked systems with embedded software.
There accordingly exists a long-felt but unfulfilled need in the art for a message parsing and validation engine which is versatile and easily expandable for use in an operations support system that manages a network. Furthermore, as existing networks which utilize real-time, embedded software expand and become more complicated, the need becomes acute for a messaging system that can automatically parse and validate new management commands and protocols to implement additional network resources such as new elements and/or functionality. It would be beneficial if the performance of these tasks was carried out in an efficient and timely way, and in a manner which does not monopolize system resources. Such features, benefits and advantages have not heretofore been achieved with prior parsing and validation schemes.